home *** CD-ROM | disk | FTP | other *** search
Text File | 1996-06-11 | 47.9 KB | 1,348 lines |
- <!ENTITY % HTML.Version
- "-//IETF//DTD HTML 3.0//EN"
-
- -- Typical usage:
-
- <!DOCTYPE HTML PUBLIC "-//IETF//DTD HTML 3.0//EN">
- <html>
- ...
- </html>
- --
- >
-
- <!--================== Flags for Marked Sections ==========================-->
-
- <!ENTITY % HTML.Recommended "IGNORE"
- -- Certain features of the language are necessary for compatibility
- with widespread usage, but they may compromise the structural
- integrity of a document. This feature test entity enables
- a more prescriptive document type definition that eliminates
- the above features.
- -->
-
- <![ %HTML.Recommended [
- <!ENTITY % HTML.Deprecated "IGNORE">
- ]]>
-
- <!ENTITY % HTML.Deprecated "INCLUDE"
- -- Certain features of the language are necessary for compatibility
- with earlier versions of the specification, but they tend
- to be used an implemented inconsistently, and their use is
- deprecated. This feature test entity enables a document type
- definition that eliminates these features.
- -->
-
- <!ENTITY % HTML.Obsoleted "IGNORE"
- -- The XMP, LISTING and PLAINTEXT tags are incompatible with SGML
- and derive from very early versions of HTML. They require non-
- standard parsers and will cause problems for processing
- documents with standard SGML tools.
- -->
-
- <!--================== Imported Names =====================================-->
-
- <!ENTITY % Content-Type "CDATA"
- -- meaning a MIME content type, as per RFC1521
- -->
-
- <!ENTITY % HTTP-Method "GET | POST"
- -- as per HTTP specification
- -->
-
- <!ENTITY % URI "CDATA"
- -- The term URI means a CDATA attribute
- whose value is a Uniform Resource Identifier,
- as defined by
- "Uniform Resource Identifiers" by Tim Berners-Lee
- aka http://info.cern.ch/hypertext/WWW/Addressing/URL/URI_Overview.html
- aka RFC 1630
-
- Note that CDATA attributes are limited by the LITLEN
- capacity (1024 in the current version of html.decl),
- so that URIs in HTML have a bounded length.
-
- -->
-
- <!ENTITY % Misc.Relations "stylesheet|node|path">
-
- <!ENTITY % FLOAT "CDATA" -- floating point numbers (not in SGML) -->
-
- <!ENTITY % SHAPE "CDATA"
- -- Shape of hotzone in image.
-
- All coordinates are assumed to be numbers in the range 0 to 1
- and interpreted as fractional width/height and measured from
- the top left corner of the associated image.
-
- The attribute value is a string taking one of the following forms:
-
- "default"
-
- Used to define a default link for the figure background.
-
- "circle x, y, r"
-
- (x, y) define the center and r the radius.
-
- "rect x, y, w, h"
-
- (x, y) defines upper left, and w and h the width and height.
-
- "polygon x1, y1, x2, y2, ..."
-
- Given n pairs of x, y coordinates, the polygon is closed by a
- line linking the n'th point to the first. Intersecting polygons
- use the non-zero winding number rule to determine if a point lies
- inside the polygon.I
- --
- >
-
- <!-- 3.0 Parameter Entities -->
-
- <!ENTITY % heading "H1|H2|H3|H4|H5|H6">
-
- <![ %HTML.Obsoleted [
- <!ENTITY % preformatted "PRE | XMP | LISTING">
- ]]>
-
-
- <![ %HTML.Deprecated [
- <!ENTITY % list "UL | OL | DIR | MENU">
- <!ENTITY % blockquote "BLOCKQUOTE | BQ">
- ]]>
-
- <!ENTITY % list "UL | OL">
-
- <!ENTITY % blockquote "BQ">
-
- <!ENTITY % preformatted "PRE">
-
-
- <!-- The CLASS attribute is used to subclass HTML elements for
- rendering purposes, when used with style sheets, e.g. DSSSL lite -->
-
- <!ENTITY % attrs
- "id ID #IMPLIED -- element identifier --
- class NAMES #IMPLIED -- for subclassing elements --
- style CDATA #IMPLIED -- rendering annotation --
- lang NAME #IMPLIED -- as per RFC 1766 --
- dir (ltr|rtl) #IMPLIED -- I18N text direction --">
-
- <!-- SGML standard forces different NAMES for all attribute values
- in the same element, regardless of the attribute name! As a result
- CDATA is used for CLEAR attribute to avoid clash with ALIGN attribute.-->
-
- <!--
- When text flows around a figure or table in the margin, you sometimes want
- to start an element like a header, paragraph or list below the figure rather
- than alongside it. The CLEAR attribute allows you to move down unconditionally:
-
- clear=left move down until left margin is clear
- clear=right move down until right margin is clear
- clear=all move down until both margins are clear
-
- Alternatively, you can decide to place the element alongside the figure just
- so long as there is enough room. The minimum width needed is specified as:
-
- clear="40 en" move down until there is at least 40 en units free
- clear="100 pixels" move down until there is at least 100 pixels free
-
- The style sheet (or browser defaults) may provide default minimum widths for
- each class of block-like elements.
- -->
-
- <!ENTITY % needs -- Attributes for controlling text flow. Used in headers
- and other elements to guarantee sufficient room --
- 'clear CDATA #IMPLIED'>
-
- <!--
- The following attribute may be included where ever a URL can be given:
-
- md message digest e.g. md="md5:jV2OfH+nnXHU8bnkPAad/mSQlTDZ"
- where the digest is base64 encoded and preceded by a prefix
- denoting the algorithm (in this case MD5).
- -->
-
- <!ENTITY % url.link -- Attributes associated with URL based links --
- "md CDATA #IMPLIED -- message digest for linked object --">
-
- <!--================ Character mnemonic entities ==========================-->
-
- <!-- The HTML list of Latin-1 entities includes the full range
- of characters in widely available Latin-1 fonts, and as such
- is a mixture of ISOlat1 and other ISO publishing symbols -->
-
- <!ENTITY % HTMLlat1 PUBLIC
- "ISO 8879-1986//ENTITIES Added Latin 1//EN//">
- %HTMLlat1;
-
- <!--================ Entities for special symbols =========================-->
-
- <!ENTITY amp CDATA "&" -- ampersand -->
- <!ENTITY gt CDATA ">" -- greater than -->
- <!ENTITY lt CDATA "<" -- less than -->
- <!ENTITY quot CDATA """ -- double quote -->
- <!ENTITY emsp SDATA "[emsp ]" -- em space -->
- <!ENTITY ensp SDATA "[ensp ]" -- en space (1/2-em) -->
- <!ENTITY mdash SDATA "[ndash ]" -- em dash -->
- <!ENTITY ndash SDATA "[ndash ]" -- en dash (1/2-em) -->
- <!ENTITY nbsp SDATA "[nbsp ]" -- non breaking space -->
- <!ENTITY shy SDATA "[shy ]" -- soft hyphen -->
- <!ENTITY copy SDATA "[copy ]" -- copyright sign -->
- <!ENTITY trade SDATA "[trade ]" -- trade mark sign -->
- <!ENTITY reg SDATA "[reg ]" -- registered sign -->
-
- <!--================ Entities for standard icons ==========================-->
-
- <!-- a range of standard icons such as &folder; for use
- in speeding up display of directory listings etc. -->
-
- <!ENTITY % HTMLicons PUBLIC
- "ISO 8879-1986//ENTITIES Added Latin 1//EN//">
- %HTMLicons;
-
- <!--================ Entities for math symbols ============================-->
-
- <!-- ISO subset chosen for use with the widely available Adobe math font -->
-
- <!ENTITY % HTMLmath PUBLIC
- "-//IETF//ENTITIES Math and Greek for HTML//EN">
- %HTMLmath;
-
- <!--=================== Text Markup =======================================-->
-
- <!ENTITY % font " U | S | TT | I | BIG | SMALL">
-
- <!ENTITY % phrase "EM | STRONG | CODE | SAMP | KBD | VAR | CITE">
-
- <!ENTITY % misc "Q | LANG | AU | DFN | PERSON | ACRONYM | ABBREV | INS | DEL">
-
- <!ENTITY % special "TAB | MATH | A | IMG | BR | APP | INSERT">
-
- <!ENTITY % notmath "%font | %phrase | %special | %misc">
-
- <!ENTITY % text "#PCDATA | SUB | SUP | B | %notmath">
-
-
- <!ENTITY % pre.exclusion "TAB|MATH|IMG|BIG|SMALL|SUB|SUP|APP|INSERT">
-
- <!ELEMENT (%font|B|%phrase|%misc) - - (%text)+>
- <!ATTLIST (%font|B|%phrase|%misc) %attrs;>
-
- <!-- Subscripts and superscripts. The ALIGN attribute is only used for math -->
-
- <!ELEMENT (SUB|SUP) - - (%text)+>
- <!ATTLIST (SUB|SUP)
- %attrs;
- align (left|center|right) #IMPLIED
- >
-
- <!-- Forced line break -->
-
- <!ELEMENT BR - O EMPTY>
- <!ATTLIST BR
- %attrs;
- %needs; -- for control of text flow --
- >
-
- <!-- Named left, center and right tab stops (independent of '\t' char) -->
-
- <!ELEMENT TAB - O EMPTY>
- <!ATTLIST TAB
- id ID #IMPLIED -- defines named tab stop --
- indent NUMBER 0 -- en units before new tab stop --
- to IDREF #IMPLIED -- jump to named tab stop --
- align (left|center|right|decimal) left
- dp CDATA #IMPLIED -- decimal point e.g. dp="," --
- >
-
- <!--================== Link Markup ========================================-->
-
- <!--
- With HTML 3.0 you can use ID attributes on most elements for named
- link ends. The use of the NAME attribute on anchors is deprecated.
-
- Do we want to support arbitrary elements for link starts? This would
- involve adding HREF and related attributes to most elements.
- -->
-
- <![ %HTML.Deprecated [
- <!ENTITY % linkName "name CDATA #IMPLIED -- named link end --">
- ]]>
-
- <!ENTITY % linkName "">
-
-
- <!ENTITY % ToolBar "home|toc|index|glossary|copyright|
- up|previous|next|help|bookmark"
-
- -- LINK RELationship values which are used to create toolbar
- buttons or menu items for navigation, where toc stands
- for table of contents and bookmark provides for an open
- ended set of links, i.e. you can use multiple bookmarks
- for key entry points. Use the optional TITLE attribute
- to override default names.
- -->
-
- <!ENTITY % linkType "NAME"
- -- A definitive list will be specified at a later date.
-
- They are used
-
- a) by stylesheets to control how collections of
- html nodes are rendered into printed documents
-
- b) for document specific toolbars/menus when used
- with the LINK element in document head:
-
- "home|toc|index|glossary|copyright|
- up|previous|next|help|bookmark"
-
- where toc stands for table of contents and
- bookmark provides for an open ended set of links,
- i.e. you can use several bookmarks for key entry
- points. Use the optional TITLE attribute to
- override default names.
-
- c) for hypertext paths or guided tours,
- with REL=NODE and REL=PATH.
-
- d) to make a link to a style sheet, e.g. rel=style
- (used only with the LINK element).
- -->
-
-
- <!ENTITY % linkExtraAttributes -- URN moved to %url.link --
- "rel %linkType #IMPLIED -- forward relationship type --
- rev %linkType #IMPLIED -- reversed relationship type
- to referent data --
- title CDATA #IMPLIED -- advisory only --
- methods NAMES #IMPLIED -- supported public methods of the object:
- TEXTSEARCH, GET, HEAD, ... --
- ">
-
- <![ %HTML.Deprecated [
- <!ENTITY % A.content "(%heading|%text)+">
- ]]>
-
- <!ENTITY % A.content "(%text)+">
-
- <!ELEMENT A - - %A.content -(A)>
-
- <!ATTLIST A
- %attrs;
- href %URI; #IMPLIED
- %url.link; -- standard link attributes --
- %linkName; -- name attribute is deprecated; use ID instead --
- shape %SHAPE; #IMPLIED -- for shaped hotzones in FIGs --
- %linkExtraAttributes;
- >
-
- <!--=================== Images ============================================-->
-
- <!-- Desired widths are used for negotiating image size
- with the module responsible for painting the image.
- align=left or right cause image to float to margin
- and for subsequent text to wrap around image -->
-
- <!ELEMENT IMG - O EMPTY -- Embedded image -->
- <!ATTLIST IMG
- %attrs;
- src %URI; #REQUIRED -- URI of image to embed --
- %url.link; -- standard link attributes --
- alt CDATA #IMPLIED -- for display in place of image --
- align (top|middle|bottom|left|right) top -- relative to baseline
- -- width NUMBER #IMPLIED -- desired width in en's or pixels --
- height NUMBER #IMPLIED -- desired height in en's or pixels --
- units (en|pixels) pixels -- units for width and height --
- ismap (ismap) #IMPLIED -- pass clicks to server --
- >
-
- <!--=================== Paragraphs=========================================-->
-
- <!ELEMENT P - O (%text)+>
- <!ATTLIST P
- %attrs;
- align (left|center|right|justify) #IMPLIED
- %needs; -- for control of text flow --
- nowrap (nowrap) #IMPLIED -- disable wordwrap --
- >
-
- <!--=================== Headings, Titles, Sections ========================-->
-
- <!ELEMENT HR - O EMPTY -- customizable horizontal rule -->
- <!ATTLIST HR
- %attrs;
- src %URI; #IMPLIED -- URI of custom rule graphic --
- %url.link; -- standard link attributes --
- %needs; -- for control of text flow --
- >
-
- <!--
- Headers can be numbered, although this is a matter for style sheets.
- The style sheet controls the numbering style:
-
- a) whether the parent numbering is inherited, e.g. 5.i.c
- where 5 is the current sequence number for H1 headers, and
- 1 is the number for H2 headers and 3 for H3 headers.
-
- b) what style is used for current sequence number
- e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
- or a numbering scheme appropriate for the current language
-
- The skip attribute is used to skip over sequence numbers for items
- which have been left out of the list, e.g. skip=3 advances the
- sequence number past 3 omitted items. The seqnum sets the sequence
- number to a specified value. Note that the style sheet may take
- advantage of the sequence number for higher level headers.
-
- The dingbat or src attributes may be used to specify a bullet like
- image to be placed adjacent to the header. Defining this in the
- header element simplifies the document markup and avoids the need
- to use the clear or needs attribute in the following element to
- prevent it flowing around this image.
- -->
-
- <!ELEMENT ( %heading ) - - (%text;)+>
- <!ATTLIST ( %heading )
- %attrs;
- align (left|center|right|justify) #IMPLIED
- %needs; -- for control of text flow --
- seqnum NUMBER #IMPLIED -- starting sequence number --
- skip NUMBER 0 -- skip seq nums for missing items --
- dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
- src %URI; #IMPLIED -- bullet defined by graphic --
- %url.link; -- standard link attributes --
- nowrap (nowrap) #IMPLIED -- disable wordwrap --
- >
-
- <!ELEMENT TITLE - - (#PCDATA)
- -- The TITLE element is not considered part of the flow of text.
- It should be displayed, for example as the page header or
- window title.
- -->
-
- <!--=================== Text Flows ========================================-->
-
- <!ENTITY % block
- "P | %list | DL
- | %preformatted
- | %blockquote
- | FORM | ISINDEX | FN
- | TABLE | FIG | NOTE">
-
- <!--
- ((%block)* | (%text)*) would be much nicer as it would avoid the need
- for a <P> tag when all you want is a few words of text. The problem
- is that it also prevents: "<LI> <P>some text" since it forbids PCDATA
- and hence the white space between the <LI> and the <P>.
- -->
-
- <![ %HTML.Recommended [
- <!ENTITY % flow "(%block)*">
- ]]>
-
- <!ENTITY % flow "(%text | %block)*">
-
- <!ELEMENT PRE - - (%text)* -(%pre.exclusion)>
-
- <!ATTLIST PRE
- %attrs;
- width NUMBER #implied
- %needs; -- for control of text flow --
- >
-
- <![ %HTML.Obsoleted [
-
- <!ENTITY % literal "CDATA"
- -- special non-conforming parsing mode where
- the only markup signal is the end tag
- in full. This will cause problems for
- standard SGML tools!
- -->
-
- <!ELEMENT XMP - - %literal>
- <!ELEMENT LISTING - - %literal>
- <!ELEMENT PLAINTEXT - O %literal>
-
- ]]>
-
- <!--=================== Lists =============================================-->
-
- <!ELEMENT DL - - (LH?, (DT|DD)+) -- this is perhaps too lax? -->
- <!ATTLIST DL
- %attrs;
- %needs; -- for control of text flow --
- compact (compact) #IMPLIED -- more compact style --
- >
-
- <!ELEMENT DT - O (%text)+>
- <!ELEMENT DD - O %flow;>
- <!ATTLIST (DT|DD)
- %attrs;
- %needs; -- for control of text flow --
- >
-
-
- <!ELEMENT (OL|UL) - - (LH?, LI+) -- should we allow a list header ? -->
-
- <!-- style sheet controls numbering style
- a) whether the parent numbering is inherited, e.g. 5.1.c
- b) what style is used for current sequence number
- e.g. arabic, upperalpha, loweralpha, upperroman, lowerroman
- or a numbering scheme for the current language
- -->
- <!ATTLIST OL
- %attrs;
- %needs; -- for control of text flow --
- continue (continue) #IMPLIED -- don't restart sequence number --
- seqnum NUMBER #IMPLIED -- starting sequence number --
- compact (compact) #IMPLIED -- reduced interitem spacing --
- >
-
- <!-- Unordered lists:
-
- o single or multicolumn with
- horizontal or vertical wrapping
-
- o plain or bulletted list items
-
- o bullets can be customised via:
- - entities (dingbats in HTMLicons)
- - external graphic via URL
- - individual attributes on LI tags
- -->
- <!ATTLIST UL
- %attrs;
- %needs; -- for control of text flow --
- wrap (vert|horiz|none) none -- multicolumn list style --
- plain (plain) #IMPLIED -- suppress bullets --
- dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
- src %URI; #IMPLIED -- bullet defined by graphic --
- %url.link; -- standard link attributes --
- compact (compact) #IMPLIED -- reduced interitem spacing --
- >
-
- <!ELEMENT LH - O (%text;)+ -- list header -->
- <!ATTLIST LH %attrs;>
-
- <!--
- For unordered lists, you can override the standard bullet with
- a custom graphic specified via a URI e.g. src="splash.gif" or
- a reference to one of the HTMLicons graphics e.g. dingbat=folder
-
- The skip attribute is used with ordered lists to skip over sequence
- numbers for items which have been left out of the list, e.g. skip=3
- advances the sequence number past 3 omitted items.
- -->
-
- <!ELEMENT LI - O %flow; -- list item -->
- <!ATTLIST LI
- %attrs;
- %needs; -- for control of text flow --
- dingbat ENTITY #IMPLIED -- dingbat entity from HTMLicons --
- src %URI; #IMPLIED -- custom bullet graphic --
- %url.link; -- standard link attributes --
- skip NUMBER 0 -- skip seq nums for missing items --
- >
-
- <!-- DIR and MENU are now subsumed by UL with type=plain. Use the
- wrap attribute to control wrapping style for multicolumn lists -->
-
- <![ %HTML.Deprecated [
- <!ELEMENT (DIR|MENU) - - (LI)+ -(%block)>
- <!ATTLIST (DIR|MENU)
- compact (compact) #IMPLIED>
- ]]>
-
- <!--=================== Document Body =====================================-->
-
- <![ %HTML.Recommended [
- <!ENTITY % body.content "(DIV|%heading|%block|HR|ADDRESS)*"
- -- <h1>Heading</h1>
- <p>Text ...
- is preferred to
- <h1>Heading</h1>
- Text ...
- -->
- ]]>
-
- <!ENTITY % body.content "(DIV | %heading | %text | %block | HR | ADDRESS)*">
-
- <!ELEMENT BODY O O (BANNER?, %body.content) +(SPOT)>
- <!ATTLIST BODY
- %attrs;
- background %URI; #IMPLIED -- texture tile for document background --
- >
-
- <!--
- The BANNER element is used for a banner section which appears at
- the top of the window and doesn't scroll with window contents.
- This can be used for corporate logos, copyright statements and
- disclaimers, as well as customized navigation/search controls.
- -->
- <!ELEMENT BANNER - - %body.content>
- <!ATTLIST BANNER %attrs; >
-
- <!-- SPOT is used to insert IDs at arbitrary places
- e.g. for end points of a marked range (see RANGE) -->
- <!ELEMENT SPOT - O EMPTY>
- <!ATTLIST SPOT id ID #REQUIRED>
-
- <!ELEMENT (%blockquote) - - (%body.content, CREDIT?)>
- <!ATTLIST (%blockquote)
- %attrs;
- %needs; -- for control of text flow --
- nowrap (nowrap) #IMPLIED -- disable wordwrap --
- >
-
- <!ENTITY % address.content "((%text;)* | P*)">
-
- <!ELEMENT ADDRESS - - %address.content>
- <!ATTLIST ADDRESS
- %attrs;
- %needs; -- for control of text flow --
- >
-
-
- <!ELEMENT APP - O EMPTY>
- <!ATTLIST APP
- class CDATA #REQUIRED
- src %URI; #IMPLIED
- align (bottom|top|middle) #IMPLIED
- width NUMBER #IMPLIED
- height NUMBER #IMPLIED
- >
-
- <!--
- DIV can be used with the CLASS attribute to represent different
- kinds of container, e.g. chapter, section, abstract, appendix.
- -->
-
- <!ELEMENT DIV - - %body.content>
- <!ATTLIST DIV
- %attrs;
- %needs; -- for control of text flow --
- align (left|center|right) left -- alignment of following text --
- nowrap (nowrap) #IMPLIED -- disable wordwrap --
- >
-
- <!-- Insert tag -->
- <!-- Content model entities imported from parent DTD:
-
- %body.content allows inserts to contain headers, paras,
- lists, form elements and even arbitrarily nested inserts.
- -->
-
- <!ENTITY % Length "CDATA" -- standard length value -->
- <!ENTITY % URL "CDATA" -- standard length value -->
- <!ENTITY % Align "(top|middle|bottom|left|center|right)">
-
- <!-- INSERT is a character-like element for inserting objects -->
- <!ELEMENT insert - - (param*, %body.content)>
- <!ATTLIST insert
- %attrs -- id, class, style, lang, dir --
- data %URL #IMPLIED -- ref to object's data --
- code %URL #IMPLIED -- ref to object's code --
- classid %URL #IMPLIED -- object's UUID --
- type CDATA #IMPLIED -- Internet media type --
- align %Align #IMPLIED -- positioning inside document --
- height %Length #IMPLIED -- suggested height --
- width %Length #IMPLIED -- suggested width --
- border %Length #IMPLIED -- suggested link border width --
- hspace %Length #IMPLIED -- suggested horizontal gutter --
- vspace %Length #IMPLIED -- suggested vertical gutter --
- usemap %URL #IMPLIED -- ref to image map --
- ismap (ismap) #IMPLIED -- use server image map --
- >
-
- <!-- the BODYTEXT element is needed to avoid problems with
- SGML mixed content, but is never used in actual documents -->
- <!ELEMENT bodytext O O %body.content>
-
- <!ELEMENT param - O EMPTY -- named property value -->
- <!ATTLIST param
- name CDATA #REQUIRED -- property name --
- value CDATA #IMPLIED -- property value --
- valueref %URL #IMPLIED -- ref to object ALIAS --
- type CDATA #IMPLIED -- Internet media type --
- >
-
- <!-- ALIAS is allowed anywhere in document HEAD and BODY
- it defines an alias for an object without inserting it -->
- <!ELEMENT alias - - (param*, alias?)>
- <!ATTLIST alias
- id ID #REQUIRED -- defines name for alias --
- data %URL #IMPLIED -- ref to object's data --
- code %URL #IMPLIED -- ref to object's code --
- classid %URL #IMPLIED -- object's UUID --
- type CDATA #IMPLIED -- Internet media type --
- >
-
- <!--================ Forms ===============================================-->
-
- <!--
- As HTML 2.0 plus a few extensions:
-
- a) A RANGE control which varies between pair of values
- specified with the size attribute, e.g. SIZE="1, 10"
-
- b) FILE widget for uploading one or more files to a server
-
- c) SCRIBBLE on image widget that sends the "ink" to the server
-
- d) AUDIO widget for playing and recording audio samples
-
- e) SUBMIT/RESET buttons can now be customised with an image.
- This subsumes the IMAGE type which is now deprecated.
-
- f) Graphical SELECTion menus are now supported, using
- the new SHAPE attribute on OPTION elements.
-
- Further extensions are in the pipeline (e.g. table entry,
- multiple data formats for textarea fields and client-side
- scripts with custom widgets) but will have to wait until
- the backlog of implementation work diminishes.
- -->
-
- <!ELEMENT FORM - - %body.content -(FORM) +(INPUT|SELECT|TEXTAREA)>
- <!ATTLIST FORM
- action %URI; #REQUIRED -- server-side form handler --
- method (%HTTP-Method) GET -- see HTTP specification --
- enctype %Content-Type; "application/x-www-form-urlencoded"
- script %URI; #IMPLIED -- link to client-side script --
- >
-
- <![ %HTML.Deprecated [
- <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET
- | RANGE | AUDIO | FILE | SCRIBBLE | HIDDEN | IMAGE)">
- ]]>
-
- <!ENTITY % InputType "(TEXT | PASSWORD | CHECKBOX | RADIO | SUBMIT | RESET
- | RANGE | AUDIO | FILE | SCRIBBLE | HIDDEN)">
-
- <!ELEMENT INPUT - O EMPTY>
- <!ATTLIST INPUT
- %attrs;
- type %InputType TEXT
- name CDATA #IMPLIED -- required for all but submit and reset --
- value CDATA #IMPLIED
- src %URI; #IMPLIED -- for fields with background images --
- %url.link; -- standard link attributes --
- checked (checked) #IMPLIED -- for radio buttons and check boxes --
- size CDATA #IMPLIED -- like NUMBERS,
- but delimited with comma, not space --
- maxlength NUMBER #IMPLIED
- align (top|middle|bottom|left|right) top
- >
-
- <!--
- SRC attribute added for graphical selection menus
- The WIDTH, HEIGHT and UNITS attributes apply to the
- image specified by the SRC attribute.
- -->
-
- <!ELEMENT SELECT - - (OPTION+) -(INPUT|TEXTAREA|SELECT)>
- <!ATTLIST SELECT
- %attrs;
- name CDATA #REQUIRED
- multiple (multiple) #IMPLIED
- src %URI; #IMPLIED -- for graphical selection menus --
- %url.link; -- standard link attributes --
- width NUMBER #IMPLIED -- desired width of in en's or pixels --
- height NUMBER #IMPLIED -- desired height in en's or pixels --
- units (en|pixels) pixels -- units for width and height --
- align (top|middle|bottom|left|right) top
- >
-
- <!ELEMENT OPTION - O (#PCDATA)>
- <!ATTLIST OPTION
- %attrs;
- selected (selected) #IMPLIED
- value CDATA #IMPLIED -- default to element content --
- shape %SHAPE; #IMPLIED -- for graphical selection menus --
- >
-
- <!--
- Multi-line text input field. align=left or right
- causes the field to float to margin and for
- subsequent text to wrap around the field.
- -->
-
- <!ELEMENT TEXTAREA - - (#PCDATA) -(INPUT|TEXTAREA|SELECT)>
- <!ATTLIST TEXTAREA
- %attrs;
- name CDATA #REQUIRED
- rows NUMBER #REQUIRED
- cols NUMBER #REQUIRED
- align (top|middle|bottom|left|right) top
- >
- <!--======================= Captions ======================================-->
-
- <!ELEMENT CAPTION - - (%text;)+ -- table or figure caption -->
- <!ATTLIST CAPTION
- %attrs;
- align (top|bottom|left|right) #IMPLIED
- >
- <!--======================= Tables ========================================-->
- <!--
- Tables and figures can be aligned in several ways:
-
- bleedleft flush left with the left (window) border
- left flush left with the left text margin
- center centered (text flow is disabled for this mode)
- right flush right with the right text margin
- bleedright flush right with the right (window) border
- justify when applicable the table/figure should stretch
- to fill space between the text margins
-
- Note: text will flow around the table or figure if the browser
- judges there is enough room and the alignment is not centered
- or justified. The table or figure may itself be part of the
- text flow around some earlier figure. You can in this case use
- the clear or needs attributes to move the new table or figure
- down the page beyond the obstructing earlier figure. Similarly,
- you can use the clear or needs attributes with other elements
- such as headers and lists to move them further down the page.
- -->
-
- <!ENTITY % block.align
- "align (bleedleft|left|center|right|bleedright|justify) center">
-
- <!-- Content model entities imported from parent DTD:
-
- %body.content; allows table cells to contain headers, paras,
- lists, form elements and even arbitrarily nested tables.
-
- %text; is text characters, including character entities and
- character emphasis elements, IMG and anchors
- -->
-
- <!--
- The BORDER attribute sets the thickness of the frame around the
- table. The default units are screen pixels.
-
- The FRAME attribute specifies which parts of the frame around
- the table should be rendered. The values are not the same as
- CALS to avoid a name clash with the VALIGN attribute.
-
- The value "border" is included for backwards compatibility with
- <TABLE BORDER> which yields frame=border and border=implied
- For <TABLE BORDER=1> you get border=1 and frame=implied. In this
- case, its appropriate to treat this as frame=border for backwards
- compatibility with deployed browsers.
- -->
-
- <!ENTITY % Frame "(void|above|below|hsides|lhs|rhs|vsides|box|border)">
-
- <!--
- The RULES attribute defines which rules to draw between cells:
-
- If RULES is absent then assume:
- "none" if BORDER is absent or BORDER=0 otherwise "all"
- -->
-
- <!ENTITY % Rules "(none | basic | rows | cols | all)">
-
- <!-- horizontal placement of table relative to window -->
- <!ENTITY % Where "(left|center|right)">
- <!--NewPage-->
- <!-- horizontal alignment attributes for cell contents -->
- <!ENTITY % cell.halign
- "align (left|center|right|justify|char) #IMPLIED
- char CDATA #IMPLIED -- alignment char, e.g. char=':' --
- charoff CDATA #IMPLIED -- offset for alignment char --"
- >
-
- <!-- vertical alignment attributes for cell contents -->
- <!ENTITY % cell.valign
- "valign (top|middle|bottom|baseline) #IMPLIED"
- >
-
- <!ELEMENT table - - (caption?, (col|colgroup)*, thead?, tfoot?, tbody+)>
- <!ELEMENT thead - O (tr+)>
- <!ELEMENT tfoot - O (tr+)>
- <!ELEMENT tbody O O (tr+)>
- <!ELEMENT col - O EMPTY>
- <!ELEMENT tr - O (th|td)+>
- <!ELEMENT (th|td) - O %body.content>
- <!ATTLIST table -- table element --
- %attrs; -- id, lang, style, dir and class --
- align %Where; #IMPLIED -- table position relative to window --
- width CDATA #IMPLIED -- table width relative to window --
- cols NUMBER #IMPLIED -- used for immediate display mode --
- border CDATA #IMPLIED -- controls frame width around table --
- frame %Frame; #IMPLIED -- which parts of table frame to include --
- rules %Rules; #IMPLIED -- rulings between rows and cols --
- cellspacing CDATA #IMPLIED -- spacing between cells --
- cellpadding CDATA #IMPLIED -- spacing within cells --
- >
-
- <!-- ALIGN is used here for compatibility with deployed browsers -->
-
- <!--
- COLGROUP groups a set of COL elements. It allows you to group
- several columns together. COL elements contained within a COLGROUP
- element do not themselves define column groups.
- -->
-
- <!ELEMENT colgroup - O (col+)>
- <!ATTLIST colgroup
- %attrs; -- id, lang, style, dir and class --
- %cell.halign; -- horizontal alignment in cells --
- %cell.valign; -- vertical alignment in cells --
- >
-
- <!--
- COL elements define the alignment properties for cells in a given
- column or spanned columns. The WIDTH attribute specifies the
- width of the columns, e.g.
-
- width=64 width in screen pixels
- width=0.5* relative width of 0.5
- -->
-
- <!ATTLIST col -- column groups and properties --
- %attrs; -- id, lang, style, dir and class --
- span NUMBER 1 -- number of columns spanned by group --
- width CDATA #IMPLIED -- relative width e.g. 2.5 --
- %cell.halign; -- horizontal alignment in cells --
- %cell.valign; -- vertical alignment in cells --
- >
-
- <!--
- Use THEAD to duplicate headers when breaking table
- across page boundaries, or for static headers when
- body sections are rendered in scrolling panel.
-
- Use TFOOT to duplicate footers when breaking table
- across page boundaries, or for static footers when
- body sections are rendered in scrolling panel.
-
- Use multiple TBODY sections when rules are needed
- between groups of table rows.
- -->
- <!ATTLIST (thead|tbody|tfoot) -- table section --
- %attrs; -- id, lang, style, dir and class --
- %cell.halign; -- horizontal alignment in cells --
- %cell.valign; -- vertical alignment in cells --
- >
-
- <!ATTLIST tr -- table row --
- %attrs; -- id, lang, style, dir and class --
- %cell.halign; -- horizontal alignment in cells --
- %cell.valign; -- vertical alignment in cells --
- >
-
- <!ATTLIST (th|td) -- header or data cell --
- %attrs; -- id, lang, style, dir and class --
- axis CDATA #IMPLIED -- defaults to cell content --
- axes CDATA #IMPLIED -- list of axis names --
- nowrap (nowrap) #IMPLIED -- suppress word wrap --
- rowspan NUMBER 1 -- number of rows spanned by cell --
- colspan NUMBER 1 -- number of cols spanned by cell --
- %cell.halign; -- horizontal alignment in cells --
- %cell.valign; -- vertical alignment in cells --
- >
-
- <!--====================== Figures ========================================-->
-
- <!--
- The element contains text for use in non-graphical displays. Note that
- you can use the shape attribute in anchors to specify hotzones on images.
- This provides for local processing of pointer clicks and a unified method
- for dealing with graphical and non-graphical displays.
-
- Text is flowed around figures when the figure is left or right aligned.
- You can request the browser to move down until there is enough room for
- the next element, see the CLEAR and NEED attributes (in %needs)
-
- Figures offer a path towards embedding arbitrary information formats
- via some kind of OLE/OpenDoc mechanism.
- -->
-
- <!ELEMENT FIG - - (OVERLAY*, CAPTION?, %body.content;, CREDIT?) -(FIG|IMG)>
- <!ATTLIST FIG
- %attrs;
- %needs; -- for control of text flow --
- src %URI; #REQUIRED -- URI of document to embed --
- %url.link; -- standard link attributes --
- %block.align; -- horizontal alignment --
- noflow (noflow) #IMPLIED -- noflow around figure --
- width NUMBER #IMPLIED -- desired width in units --
- height NUMBER #IMPLIED -- desired height in units --
- units (en|pixels) pixels -- specifies units as en's or pixels --
- imagemap %URI; #IMPLIED -- pass background clicks to server --
- >
-
- <!--
- Figure overlays. When combined with local caching, overlays
- provide a cheap way of modifying a larger base image sent as
- part of a previous page.
- -->
-
- <!ELEMENT OVERLAY - O EMPTY -- image overlay -->
- <!ATTLIST OVERLAY
- src %URI; #REQUIRED -- URI of image overlay --
- %url.link; -- standard link attributes --
- units (en|pixels) pixels -- specifies units as en's or pixels --
- x NUMBER 0 -- offset from left in units --
- y NUMBER 0 -- offset from top in units --
- width NUMBER #IMPLIED -- desired width in units --
- height NUMBER #IMPLIED -- desired height in units --
- imagemap %URI; #IMPLIED -- pass background clicks to server --
- >
-
- <!ELEMENT CREDIT - - (%text;)* -- source of image -->
- <!ATTLIST CREDIT
- %attrs;
- >
-
- <!--======================== Notes ========================================-->
-
- <!--
- The NOTE element is used for admonishments. The CLASS attribute
- is used to differentiate NOTE's, e.g. Note, Caution or Warning.
- -->
-
- <!ELEMENT NOTE - - %body.content; -- admonishment -->
- <!ATTLIST NOTE
- %attrs;
- src %URI; #IMPLIED -- URI of custom graphic --
- %url.link; -- standard link attributes --
- %needs; -- for control of text flow --
- >
-
- <!--======================== Footnotes ====================================-->
-
- <!--
- Typically rendered as popup note. These elements are referenced
- by hypertext links specified with the anchor element.
- -->
- <!ELEMENT FN - - %body.content;>
- <!ATTLIST FN %attrs;>
-
- <!--======================== Math ========================================-->
-
- <!-- Use etc for greater control of spacing. -->
-
- <!-- Subscripts and Superscripts
-
- <SUB> and <SUP> are used for subscripts and superscripts.
-
- i j
- X <SUP>i</SUP>Y<SUP>j</SUP> is X Y
-
- i.e. the space following the X disambiguates the binding.
- The align attribute can be used for horizontal alignment,
- e.g. to explicitly place an index above an element:
- i
- X<sup align=center>i</sup> produces X
-
- Short references are defined for superscripts, subscripts and boxes
- to save typing when manually editing HTML math, e.g.
-
- x^2^ is mapped to x<sup>2</sup>
- y_z_ is mapped to y<sub>z</sub>
- {a+b} is mapped to <box>a + b</box>
-
- Note that these only apply within the MATH element and can't be
- used in normal text!
- -->
- <!ENTITY REF1 STARTTAG "SUP">
- <!ENTITY REF2 ENDTAG "SUP">
- <!ENTITY REF3 STARTTAG "SUB">
- <!ENTITY REF4 ENDTAG "SUB">
- <!ENTITY REF5 STARTTAG "BOX">
- <!ENTITY REF6 ENDTAG "BOX">
-
- <!USEMAP MAP1 MATH>
- <!USEMAP MAP2 SUP>
- <!USEMAP MAP3 SUB>
- <!USEMAP MAP4 BOX>
-
- <!SHORTREF MAP1 "^" REF1
- "_" REF3
- "{" REF5 >
-
- <!SHORTREF MAP2 "^" REF2
- "_" REF3
- "{" REF5 >
-
- <!SHORTREF MAP3 "_" REF4
- "^" REF1
- "{" REF5 >
-
- <!SHORTREF MAP4 "}" REF6
- "^" REF1
- "_" REF3
- "{" REF5 >
-
- <!--
- The inclusion of %math and exclusion of %notmath is used here
- to alter the content model for the B, SUB and SUP elements,
- to limit them to formulae rather than general text elements.
- -->
-
- <!ENTITY % mathvec "VEC|BAR|DOT|DDOT|HAT|TILDE" -- common accents -->
- <!ENTITY % mathface "B|T|BT" -- control of font face -->
- <!ENTITY % math "BOX|ABOVE|BELOW|%mathvec|ROOT|SQRT|ARRAY|SUB|SUP|%mathface">
- <!ENTITY % formula "#PCDATA|%math">
-
- <!ELEMENT MATH - - (#PCDATA)* -(%notmath) +(%math)>
- <!ATTLIST MATH
- id ID #IMPLIED
- model CDATA #IMPLIED>
-
- <!-- The BOX element acts as brackets. Delimiters are optional and
- stretch to match the height of the box. The OVER element is used
- when you want a line between numerator and denominator. This line
- is suppressed with the alternative ATOP element. CHOOSE acts like
- ATOP but adds enclosing round brackets as a convenience for binomial
- coefficients. Note the use of { and } as shorthand for <BOX> and
- </BOX> respectively:
-
- 1 + X
- {1 + X<OVER>Y} is _______
- Y
-
- a + b
- {a + b<ATOP>c - d} is
- c - d
-
- The delimiters are represented using the LEFT and RIGHT
- elements as in:
-
- {[<LEFT>x + y<RIGHT>]} is [ x + y ]
- {(<LEFT>a<RIGHT>]} is (a]
- {||<LEFT>a<RIGHT>||} is || a ||
-
- Use { and } for "{" and "}" respectively as
- these symbols are used as shorthand for BOX, e.g.
-
- {{<LEFT>a+b<RIGHT>}} is {a+b}
-
- You can stretch definite integrals to match the integrand, e.g.
-
- {∫<SUB>a</SUB><SUP>b</SUP><LEFT>{f(x)<over>1+x} dx}
-
- b
- / f(x)
- | ----- dx
- / 1 + x
- a
-
- Note the complex content model for BOX is a work around
- for the absence of support for infix operators in SGML.
-
- You can get oversize delimiters with the SIZE attribute,
- for example <BOX SIZE=large>(<LEFT>...<RIGHT>)</BOX>
-
- Note that the names of common functions are recognized
- by the parser without the need to use "&" and ";" around
- them, e.g. int, sum, sin, cos, tan, ...
- -->
-
- <!ELEMENT BOX - - ((%formula)*, (LEFT, (%formula)*)?,
- ((OVER|ATOP|CHOOSE), (%formula)*)?,
- (RIGHT, (%formula)*)?)>
- <!ATTLIST BOX
- size (normal|medium|large|huge) normal -- oversize delims -->
-
- <!ELEMENT (OVER|ATOP|CHOOSE|LEFT|RIGHT) - O EMPTY>
-
- <!-- Horizontal line drawn ABOVE contents
- The symbol attribute allows authors to supply
- an entity name for an accent, arrow symbol etc.
- Generalisation of LaTeX's overline command.
- -->
-
- <!ELEMENT ABOVE - - (%formula)+>
- <!ATTLIST ABOVE symbol ENTITY #IMPLIED>
-
- <!-- Horizontal line drawn BELOW contents
- The symbol attribute allows authors to
- supply an entity name for an arrow symbol etc.
- Generalisation of LaTeX's underline command.
- -->
-
- <!ELEMENT BELOW - - (%formula)+>
- <!ATTLIST BELOW symbol ENTITY #IMPLIED>
-
- <!-- Convenience tags for common accents:
- vec, bar, dot, ddot, hat and tilde
- -->
-
- <!ELEMENT (%mathvec) - - (%formula)+>
-
- <!--
- T and BT are used to designate terms which should
- be rendered in an upright font (& bold face for BT)
- -->
-
- <!ELEMENT (T|BT) - - (%formula)+>
- <!ATTLIST (T|BT) class NAMES #IMPLIED>
-
- <!-- Roots e.g. <ROOT>3<OF>1+x</ROOT> -->
-
- <!ELEMENT ROOT - - ((%formula)+, OF, (%formula)+)>
- <!ELEMENT OF - O (%formula)* -- what the root applies to -->
-
- <!ELEMENT SQRT - - (%formula)* -- square root convenience tag -->
-
- <!-- LaTeX like arrays. The COLDEF attribute specifies
- a single capital letter for each column determining
- how the column should be aligned, e.g. coldef="CCC"
-
- "L" left
- "C" center
- "R" right
-
- An optional separator letter can occur between columns
- and should be one of + - or =, e.g. "C+C+C+C=C".
- Whitespace within coldef is ignored. By default, the
- columns are all centered.
-
- The ALIGN attribute alters the vertical position of the
- array as compared with preceding and following expressions.
-
- Use LDELIM and RDELIM attributes for delimiter entities.
- When the LABELS attribute is present, the array is
- displayed with the first row and the first column as
- labels displaced from the other elements. In this case,
- the first element of the first row should normally be
- left blank.
-
- Use &vdots; &cdots; and &ddots; for vertical, horizontal
- and diagonal ellipsis dots. Use &dotfill; to fill an array
- cell with horizontal dots (e.g. for a full row).
- Note &ldots; places the dots on the baseline, while &cdots;
- places them higher up.
- -->
-
- <!ELEMENT ARRAY - - (ROW)+>
- <!ATTLIST ARRAY
- align (top|middle|bottom) middle -- vertical alignment --
- coldef CDATA #IMPLIED -- column alignment and separator --
- ldelim NAMES #IMPLIED -- stretchy left delimiter --
- rdelim NAMES #IMPLIED -- stretchy right delimiter --
- labels (labels) #IMPLIED -- TeX's \bordermatrix style -->
-
- <!ELEMENT ROW - O (ITEM)*>
- <!ELEMENT ITEM - O (%formula)*>
- <!ATTLIST ITEM
- align CDATA #IMPLIED -- override coldef alignment --
- colspan NUMBER 1 -- merge columns as per TABLE --
- rowspan NUMBER 1 -- merge rows as per TABLE -->
-
- <!--================ Document Head ========================================-->
-
- <![ %HTML.Deprecated [
- <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
- & META* & LINK* & RANGE* & NEXTID?">
- ]]>
-
- <!ENTITY % head.nextid "">
-
- <!ENTITY % head.content "TITLE & ISINDEX? & BASE? & STYLE?
- & META* & LINK* & RANGE*">
-
- <!ELEMENT HEAD O O (%head.content)>
-
- <!ELEMENT LINK - O EMPTY>
- <!ATTLIST LINK
- href %URI; #REQUIRED
- %linkExtraAttributes; >
-
- <!ELEMENT RANGE - O EMPTY>
- <!ATTLIST RANGE
- id ID #IMPLIED -- for naming marked range --
- class CDATA #IMPLIED -- for subclassing --
- from IDREF #REQUIRED -- start of marked range --
- until IDREF #REQUIRED -- end of marked range --
- >
-
- <!ELEMENT ISINDEX - O EMPTY>
- <!ATTLIST ISINDEX
- href %URI; #IMPLIED -- server handling queries --
- prompt CDATA #IMPLIED -- prompt message -->
-
- <!--
- The BASE element gives the base URL for
- dereferencing relative URLs, e.g.
-
- <BASE href="http://foo.com/images">
- ...
- <IMG SRC="bar.gif">
-
- The image is deferenced to
-
- http://foo.com/images/bar.gif
- -->
-
- <!ELEMENT BASE - O EMPTY>
- <!ATTLIST BASE
- id ID #IMPLIED
- href %URI; #REQUIRED
- >
-
- <![ %HTML.Deprecated [
- <!ELEMENT NEXTID - O EMPTY>
- <!ATTLIST NEXTID N CDATA #REQUIRED>
- ]]>
-
- <!ELEMENT META - O EMPTY -- Generic Metainformation -->
- <!ATTLIST META
- http-equiv NAME #IMPLIED -- HTTP response header name --
- name NAME #IMPLIED -- metainformation name --
- content CDATA #REQUIRED -- associated information --
- >
-
- <!--
- A style sheet can be associated with the document using the
- LINK element, e.g. <LINK rel=style href="housestyle.dsssl">.
- Style overrides can be placed in the document head using the
- STYLE element, e.g.
-
- <style notation=dsssl-lite>
- dsss-lite stuff
- </style>
-
- Later on in the document you can use:
-
- <h2 class=bigcaps>Header with bigger than normal capitals</h2>
- <p class=abstract>A paragraph with a unique style of its own
- ...
-
- Statements in the given style notation
-
- The tag names, class and id attributes are used in the style sheet
- notation to describe how to render matching elements.
- -->
-
- <!ENTITY % style-notations "dsssl-lite | w3c-style">
- <!-- <!NOTATION dsssl-lite PUBLIC
- "ISO/IEC 10179:1995//NOTATION DSSSL Style Language//EN">
-
- <!NOTATION w3c-style PUBLIC "-//IETF//W3C Style Language//EN"> -->
-
- <!ELEMENT STYLE - O (#PCDATA)>
- <!ATTLIST STYLE
- notation NOTATION (%style-notations;) #REQUIRED
- >
-
- <!--================ Document Structure ===================================-->
-
- <!ENTITY % html.content "HEAD, BODY">
-
- <!ELEMENT HTML O O (%html.content)>
- <!ENTITY % version.attr 'VERSION CDATA #FIXED "%HTML.Version;"'>
-
- <!-- suggested roles are: TOC, DOC, DOCPART, HITLIST, DIALOG -->
-
- <!ATTLIST HTML
- %version.attr; -- report DTD version to application --
- urn CDATA #IMPLIED -- universal resource name for this document --
- role NAMES #IMPLIED -- role of this document, eg table of contents --
- >
-